package com.example.demo.entity.queue;

import java.util.LinkedList;
import java.util.Queue;

/**
 * @Author: zcb
 * @Description:
 * @Date: 2021/10/22
 */
public class SynchronizedTaskQueue {
    Queue<String> queue = new LinkedList<>();

    public synchronized void addTask(String s) {
        queue.add(s);
        //唤醒等待锁的其他所有线程
        this.notifyAll();
    }

    public synchronized String getTask() throws InterruptedException {
        while (queue.isEmpty()) {
            //线程等待，同时释放锁。
            this.wait();
        }
        return queue.remove();
    }
}
